package top.fyukina.fymil.parsers;

import org.dom4j.Element;
import top.fyukina.fymil.elements.Environment;
import java.math.BigDecimal;

public class CommonParser implements Parser<Object> {
    /**
     * 解析推测
     * 将会自动根据字面量类似于哪个类型
     * 返回对应的类型
     */
    @Override
    public ParserType registerName() {
        return ParserType.COM;
    }
    @Override
    public Object parse(Element tag, Environment env) {
        return env.reg().strParser.parse(tag, env);
    }
    public Object parseTry(String text, Environment env) {
        try {
            return new BigDecimal(text);
        } catch (NumberFormatException e) {
            if (env.reg().boolParser.TRUE.equals(text)) {
                return true;
            } else if (env.reg().boolParser.FALSE.equals(text)) {
                return false;
            } else {
                return text;
            }
        }
    }
}